'use strict';
const db = uniCloud.database();
const usersCollection = db.collection('uni-id-users');

exports.main = async (event, context) => {
	const { nickname, avatar, avatar_file, token, user_id } = event;
	
	// 只检查token是否存在
	if (!token) {
		return {
			code: 401,
			message: '未登录'
		};
	}
	
	// 获取用户ID
	if (!user_id) {
		return {
			code: 400,
			message: '缺少用户ID'
		};
	}
	
	// 构建更新数据
	const updateData = {};
	
	// 更新昵称
	if (nickname !== undefined) {
		updateData.nickname = nickname;
	}
	
	// 更新头像
	if (avatar !== undefined) {
		updateData.avatar = avatar;
	}
	
	// 更新avatar_file
	if (avatar_file !== undefined) {
		updateData.avatar_file = avatar_file;
	}
	
	if (Object.keys(updateData).length === 0) {
		return {
			code: 400,
			message: '没有要更新的数据'
		};
	}
	
	// 添加更新时间
	updateData.update_date = Date.now();
	
	try {
		// 更新用户信息
		await usersCollection.doc(user_id).update(updateData);
		
		// 获取最新的用户信息
		const userInfoResult = await usersCollection.doc(user_id).field('nickname,username,avatar,avatar_file').get();
		
		return {
			code: 0,
			message: '更新成功',
			data: userInfoResult.data[0]
		};
	} catch (error) {
		console.error('更新用户信息失败', error);
		return {
			code: 500,
			message: error.message || '更新失败'
		};
	}
}; 